package mylab.demo.usm.biz.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import mylab.annotation.rds.ColumnComment;
import mylab.commons.web.mvc.entity.BaseGroupEntity;
import mylab.starters.mybatis.handler.CommaToListTypeHandler;
import mylab.starters.mybatis.interceptor.impl.foreignKey.ForeignKey;

import java.util.List;

/**
 * <p>
 * 角色互斥登记表，参见 RBAC2 模型概念
 * </p>
 */
@Getter
@Setter
@ApiModel("角色互斥登记表")
@TableName(autoResultMap = true)
public class SysRoleMutex extends BaseGroupEntity<SysRole> {

    /**
     * <p>
     * SSD--静态职责分离:只能配置互斥列表中的一个角色
     * DSD--动态职责分离:登录后必须选择当前会话对应的角色
     * </p>
     */
    @ColumnComment("是否静态职责分离")
    @ApiModelProperty(value = "是否静态职责分离", notes = "SSD--静态职责分离:只能配置互斥列表中的一个角色。 DSD--动态职责分离:登录后必须选择当前会话对应的角色")
    @TableField
    private boolean isStatic;

    @ForeignKey(SysRole.class)
    @ColumnComment("互斥角色id列表")
    @ApiModelProperty(value = "互斥角色id列表")
    @TableField(typeHandler = CommaToListTypeHandler.class)
    private List<String> itemIds;


}
